home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 7 / FM Towns Free Software Collection 7.iso / data / dora / doralgin.plp < prev    next >
Text File  |  1993-11-30  |  7KB  |  239 lines

  1.  /************************************************************************
  2. *    ログイン処理                            *
  3. *************************************************************************/
  4. /*    初期設定処理    */
  5. %initmode{
  6.     case    (@tail(MODEM,{00}),
  7.         {m},{rscs({Yes});xon({Yes});flyingx({Yes});dispecho({Yes})},
  8.             {s},{rscs({Yes});xon({No});flyingx({Yes});dispecho({Yes})},
  9.         {n},{rscs({No});xon({Yes});flyingx({No});dispecho({No})});
  10.     lineend({CRLF});    ctrl({Yes});        stopbit({1});
  11.     parity({None});        dataleng({8bit});    flyline({4});
  12.     sendtype({Line});    code({sjis});        crmode({Yes});
  13.     esc({Yes});        crchg({Yes});
  14.     };
  15. %selM    {
  16.     select    (
  17.     {確認して下さい。(オートリダイアルは「20秒後です」)},
  18.     20,{im({Yes})},
  19.     {CALLING AGIN},{im({Yes})},
  20.     {MENUへ戻る},{display({つながらねえな!});RETCD:={Cancel};im({No})}
  21.         )
  22.     };
  23. /*    電話接続     */
  24. %callTEL{
  25.     display({\n}|NET|{-NETに電話をかけます\n});
  26.             case(@getchar(@nth(MODEM,2,{_}),1,4),
  27.             {1200},{baud(1200)},{2400},{baud(2400)},
  28.              {4800},{baud(4800)},{9600},{baud(9600)},
  29.             {},{baud(2400)});
  30.     loop    ({    dialone({AT}|@nth(MODEM,1,{/})|@nth(MODEM,2,{/})|
  31.             {D}|DIAL|@nth(sROAD,1,{/}),
  32.         {footnote(NET|{-NETに接続して居ます});im({No})},
  33.         {display({\nだれかが使ってますよ\n});selM});
  34.         })
  35.     };
  36. /*    RS-232C クロス接続    */
  37. %call232C{case    (@tail(sROAD,{/}),
  38.                 {1200},{baud(1200)},{2400},{baud(2400)},
  39.                  {4800},{baud(4800)},{9600},{baud(9600)},
  40.                 {},{baud(2400)});
  41.           case    (@head(MODEM,{/}),
  42.                 {RET},{type({\n})},
  43.                 {ESC},{type({})})};
  44. /*    回線接続処理    */
  45. %callrd2{            case    (@tail(MODEM,{00})={s},
  46.                     {No},{callTEL},
  47.                     {Yes},{call232C})};
  48. /*    オートパイロット開始処理    */
  49. %Aisatu{
  50. loop    ({wait({3},{im({Yes})}
  51.         ,{システムがダウンしました},
  52.         {AbortOff({\nホストのシステムがダウンしちゃった~\n});im({No})}
  53.         ,{IDを入力してください},{type(ID|{\n});im({No})}
  54.         ,{USER ID  =},{type(ID|{\n});im({No})}
  55.         ,{User ID  =},{type(ID|{\n});im({No})});
  56.     });
  57.     wait(Wtime2,
  58.         {
  59.         case(PassWord={*}||PassWord={},
  60.         {Yes},{SNDMSG({nyuryo_f.snd});
  61.             type(@input({パスワードを入力してください})|{\n})},
  62.         {No},{type(PassWord|{\n})})                }
  63.         ,{パスワードを入力してください},{}
  64.         ,{パスワードを入力してください},{}
  65.         ,{Password =},{});
  66.         case(PassWord={*}||PassWord={},
  67.         {Yes},{SNDMSG({nyuryo_f.snd});type(@input(
  68.             {パスワードを入力してください})|{\n})},
  69.         {No},{type(PassWord|{\n})})};
  70. %AUTOLOGIN{
  71.     display({\n}|NET|{-NETへの接続を開始します\n\n});
  72.     footnote(NET|{-NETへの接続処理をしています});
  73.     initmode;
  74.     case    (sROAD={}||ID={},
  75.         {Yes},{
  76.         display({電話番号かユーザーIDが指定されていません});
  77.         footnote({電話番号とユーザーIDを指定して下さい});
  78.         SNDMSG({okasi_f.snd})},
  79.         {No},{
  80.         callrd2;
  81.         case    (RETCD,
  82.         {Start},{Aisatu}
  83.             );
  84.             }
  85.         )};
  86. /** 伝言板処理 & ボード書き込み表示 **/
  87.     case(@filechk(UP|{\DENGO}),
  88.         {Yes},{display({\n伝言板への書き込みを実行します。\n})},
  89.         {No},{display({\n伝言板には書かないよ~ん。\n})});
  90.     case(@filechk(UP2|{_mopres.ctl})||@filechk(UP2|{_mopupld.ctl}),
  91.         {Yes},{display({\nボードへの書き込みを実行します。\n})},
  92.         {No},{display({\n時にはROMだけの事も有るさ!\n})});
  93. /************************************************************************/
  94. /*RT-BBSの限定許可時間帯付チャンネルに対して自動実行開始する    */
  95. /************************************************************************/
  96. %WAITGENNTEI{
  97.     case(openT={} || closeT={},
  98.     {Yes},{
  99.         SNDMSG({okasi_f.snd});footnote({開閉局時間が未設定です});
  100.         wait(5);RETCD:={Cancel}
  101.         },
  102.     {No},{
  103.         footnote(openT|{ - }|closeT|{の間に自動通信を開始します。});
  104.         wait(3);
  105.         %nowhh    @getchar(@daylong,16,2);
  106.         case    (nowhh>=openT || nowhh<closeT,
  107.             {Yes},    {RETCD:={Start}},
  108.             {No},    {WAITS(openT|{:05})}
  109.             );
  110.         });
  111.     };
  112. %WAITSETTIME{
  113.     %access    ACCESS;
  114.     footnote({通信開始時刻を設定してください});
  115.     loop    ({
  116.         %a @plane(
  117.             {c通信開始時刻を指定してください [HH:MM]\n}|
  118.             {c  現在時刻は }|@getchar(@daylong,16,5)|{ です\n}|
  119.             {t  設定時刻        /xxxxx\n}|
  120.             {s                  / 設定 / 取消 / 即時 \n},
  121.             );
  122.         %access    @head(@getline(a,1,1),{\n});
  123.         %ok    @head(@getline(a,2,1),{\n});
  124.         case    (ok,
  125.             { 1},
  126.             {
  127.             case    (@getchar(access,1,2)>=0  &&
  128.                  @getchar(access,1,2)<=23 &&
  129.                  @getchar(access,3,1)={:} &&
  130.                  @getchar(access,4,2)>=00 &&
  131.                  @getchar(access,4,2)<=59,
  132.                 {Yes},{ACCESS:=access;WAITS(access);im({No})},
  133.                 {No},{im({Yes})}
  134.                 );
  135.             },
  136.             { 2},
  137.             {RETCD:={Cancel};im({No})},
  138.             { 3},
  139.             {RETCD:={Start};im({No})},
  140.             ,{im({Yes})}
  141.             );
  142.         });
  143.     };
  144.     
  145. %WAITS    {
  146.     [access]
  147.     var    waits    [6];
  148.     %hh    @getchar(access,1,2);
  149.     %mm    @getchar(access,4,2);
  150.     loop    ({
  151.         %now    @daylong;
  152.         %nowhh    @getchar(now,16,2);
  153.         %nowmm    @getchar(now,19,2);
  154.         %nowss    @getchar(now,22,2);
  155.         waits:=    ((hh*60+mm)*60)    - ((nowhh*60+nowmm)*60+nowss);
  156.         case    (waits<(-60),{Yes},{waits:=waits+24*60*60});
  157.         case    (waits<0,{Yes},{waits:=1});
  158.         footnote(access|{に自動通信を開始します。}|
  159.             {  PF10:通信メニューへ  PF12:即時開始});
  160.         waitx    (waits);
  161.         case    (@xtype,
  162.             {-2},    /* 指定時刻 */
  163.             {SNDMSG({jikan_f.snd});RETCD:={Start};im({No})},                {110},    /* PF10 通信メニューへ */
  164.             {RETCD:={Cancel};im({No})},
  165.             {112},    /* PF12 即時開始指定 */
  166.             {RETCD:={Start};im({No})},
  167.             ,{im({Yes})}
  168.             );
  169.         });
  170.     };
  171. /********   実行   ********/
  172. case    (sROAD={},
  173.     {Yes},{sROAD:=@im(ROAD)},
  174.     {No},    {
  175.         case    (@getchar(sROAD,1,1)={/},
  176.             {Yes},{sROAD:=@im(ROAD)},
  177.             {No},{})
  178.         }
  179.     );
  180. %CHECK3AM{
  181.     case    (AM3,
  182.         {Yes},        {WAITGENNTEI},
  183.         {Detail},    {WAITSETTIME},
  184.         ,{RETCD:={Start}}
  185.         )
  186.     };
  187. case    (@linechck,
  188.     {Yes},
  189.     {
  190.     SNDMSG({kaknin_f.snd});
  191.     footnote({回線接続中です。}|NET|{にログインし直しますか});
  192.     select    ({回線接続中です。}|NET|{にログインし直しますか},
  193.         Wtime4,
  194.         {CHECK3AM},
  195.         {}|NET|{にログインした後、実行する},
  196.         {CHECK3AM},
  197.         {ログインし直さず、そのまま実行する},
  198.         {initmode;RETCD:={NoLOG}}
  199.         );
  200.     },
  201.     {No},{CHECK3AM}
  202.     );
  203.  
  204. case    (RETCD,{Cancel},{ },
  205.     {NoLOG},{RETCD:={Start}},
  206.     {Start},
  207.     {
  208.     AUTOLOGIN;
  209.     case    (RETCD,{Cancel},{ },
  210.         {Start},
  211.         {
  212.     loop    ({
  213.         wait({3},{im({Yes})}
  214.             ,{● 改行して下さい ●},{type({\n});im({Yes})}
  215.             ,{システムがダウンしました},
  216.             {AbortOff({\nホストのシステムがダウンしちゃった~\n})}
  217.             ,{お知らせはありません},{im({Yes})}
  218.             ,{メールはないよ},{im({No})}
  219.             ,{メールはありません},{im({No})}
  220.             ,{お手紙が},{im({No})}
  221.             ,{新しく届いたメールが},{
  222.                 loop    ({
  223.                     wait({3},{im({Yes})},
  224.                         {,?,@,O},{im({No})},
  225.                         {,?,O},{im({No})},
  226.                         {quit},{type({0\n});im({No})})
  227.                     });im({No})
  228.                 }
  229.             ,{§システムからのお知らせ}, 
  230.             {    DOWNSTART;
  231.             loop    ({
  232.                 wait({3},{im({Yes})},
  233.                     {メッセージは以上です},{im({No})})
  234.                 });
  235.                 DOWNSTOP;im({No})
  236.             });
  237.         });
  238.     });
  239.     });